<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh" xml:lang="zh" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Concept: 测试自动化和工具</title>
<meta name="uma.type" content="Concept">
<meta name="uma.name" content="test_automation_and_tools">
<meta name="uma.presentationName" content="测试自动化和工具">
<meta name="element_type" content="concept">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../../css/default.css" type="text/css">
<script src="./../../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var backPath = './../../../';
					var imgPath = './../../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo,  '', false, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top"><a name="Top"></a>
<div id="page-guid" value="1.2428425240885136E-304"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Concept: 测试自动化和工具</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../../images/concept.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">该指南讨论了可用于改进测试效率的工具类型。</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Related Elements</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../rup/disciplines/rup_test_discipline_9DFAFB2F.html" guid="_yd3EzdnmEdmO6L4XMImrsA">测试</a>
</li>
<li>
<a href="./../../../rup/domains/test_FBB424F8.html" guid="_SPvXcN7IEdm8G6yT7-Wdqw">测试</a>
</li>
<li>
<a href="./../../../rup/roles/rup_test_analyst_4637F9F0.html" guid="{8728060F-9DAD-42AD-B0B6-668C9AEA531D}">测试分析人员</a>
</li>
<li>
<a href="./../../../rup/capabilitypatterns/test_and_evaluate_4D17BD6A.html" guid="{93B7D625-C83A-4EFB-9772-B88F2EB02CE2}">测试和评估</a>
</li>
<li>
<a href="./../../../rup/capabilitypatterns/test_and_evaluate_712368C6.html" guid="_kKwQ0DUSEdqNn71iifr4xw">测试和评估</a>
</li>
<li>
<a href="./../../../rup/capabilitypatterns/test_and_evaluate_883E3A46.html" guid="_D1clqUdWEdqMoerwwyqMKQ">测试和评估</a>
</li>
<li>
<a href="./../../../rup/roles/rup_test_designer_5F59E64F.html" guid="{84F723B5-288F-4AC4-B6C1-C75A07BFEEED}">测试设计人员</a>
</li>
<li>
<a href="./../../../rup/workproducts/rup_test_automation_architecture_650DD06A.html" guid="{B5B77528-E14B-43CA-BC73-D64A90A17E2D}">测试自动化架构</a>
</li>
<li>
<a href="./../../../rup/capabilitypatterns/improve_test_assets_1C99FFB9.html" guid="{CD77CBDA-CC13-4593-BB81-41AF3FF7A84C}">改善测试资产</a>
</li>
<li>
<a href="./../../../rup/capabilitypatterns/improve_test_assets_BA3D58B2.html" guid="_D2HUJUdWEdqMoerwwyqMKQ">改善测试资产</a>
</li>
<li>
<a href="./../../../rup/capabilitypatterns/verify_test_approach_A743008A.html" guid="{7BD514AF-19F9-408F-8279-309BD153C157}">验证测试方法</a>
</li>
<li>
<a href="./../../../rup/capabilitypatterns/verify_test_approach_E58263F5.html" guid="_ZqWJ0EetEdq_lfJYt-Zj8A">验证测试方法</a>
</li>
<li>
<a href="./../../../rup/capabilitypatterns/validate_build_stability_72BD9103.html" guid="{0AE0042B-034C-4296-9FA0-D9DCC61FC7B4}">验证工作版本的稳定性</a>
</li>
<li>
<a href="./../../../rup/capabilitypatterns/validate_build_stability_DEB0F413.html" guid="_6oxHwEdiEdqVZeSWHJlGyA">验证工作版本的稳定性</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Main Description</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td class="sectionTableSingleCell"><a id="Top" name="Top"></a><a id="XE_test__stages_of" name="XE_test__stages_of"></a><a id="XE_stages_of_test__introduction_to" name="XE_stages_of_test__introduction_to"></a> 
<p>
    测试自动化工具越来越多的出现在市场上，这些工具可以自动执行测试任务。现有自动化工具虽然很多，但还没有哪一种工具能够自动执行所有测试任务。多数工具是一个特定任务或一组任务专用的，而有些工具只能处理某个任务的一个方面。
</p>
<p>
    评估不同的测试自动化工具时，有必要了解正在评估的工具的类型、工具的限制以及工具能够处理和自动执行的任务。测试工具通常基于以下类别进行评估和获得：
</p>
<ul>
    <li>
        <a href="#Function">功能</a>
    </li>
    <li>
        <a href="#White-boxBlack-box">白匣与黑匣</a>
    </li>
    <li>
        <a href="#Specialization">专门化</a>
    </li>
</ul>
<h3>
    <b><a id="Function" name="Function">功能</a></b>
</h3>
<p>
    测试工具可以按执行的功能归类。为工具设计的典型功能包括：
</p>
<ul>
    <li>
        <b>数据采集工具</b>，获取在测试任务中使用的数据。可以通过转换、抽取或捕获现有数据或者通过生成用例或补充规约来获取数据。
    </li>
    <li>
        <b>静态评估工具</b>，分析设计模型、源代码或其他固定源中包含的信息。分析产生关于逻辑流、数据流、质量度量值（如复杂性、可维护性）或代码行的信息。
    </li>
    <li>
        <b>动态评估工具</b>，在代码执行期间执行分析。该评估包括代码的运行时操作，如内存量、错误检测和性能。
    </li>
    <li>
        执行任务的<b>模拟程序</b>或<b>驱动程序</b>，它们执行由于计时、费用或安全原因而无法用于测试的任务。
    </li>
    <li>
        <b>测试管理工具</b>，帮助计划、设计、实现、执行、评估和管理测试任务或工作产品。
    </li>
</ul>
<h3>
    <b><a id="White-boxBlack-box" name="White-boxBlack-box">白匣与黑匣</a></b>
</h3>
<p>
    根据工具的使用方式或使用工具所需的技术和知识，测试工具通常被描绘成白匣或黑匣。
</p>
<ul>
    <li>
        <b>白匣工具</b>，依靠代码、设计模型或其他来源的资料的知识来实现和执行测试。
    </li>
    <li>
        <b>黑匣工具</b>，只依靠测试目标的用例或功能描述。
    </li>
</ul>
<p>
    白匣工具了解测试目标是如何处理请求的，而黑匣工具依据输入和输出条件来评估测试。
</p>
<h3>
    <b><a id="Specialization" name="Specialization">专门化</a></b>
</h3>
<p>
    除了前面提到的工具的广泛分类，还可以按专用性来对这些工具进行分类。
</p>
<ul>
    <li>
        <b>记录和回放工具</b>，将数据采集和动态评估结合起来。在记录事件期间获取测试数据（称为测试实现）。以后，在测试执行期间，将数据用于回放测试脚本，该脚本是用于评估测试目标的执行的。
    </li>
    <li>
        <b>质量度量值工具</b>是静态评估工具，对设计模型或源代码执行静态分析，以建立一组描述测试目标质量的参数。这些参数可以指示可靠性、复杂度、可维护性或其他质量度量值。
    </li>
    <li>
        <b>覆盖率监视工具</b>，通过确定在测试期间的某个范围内覆盖了多少测试目标，来指示测试的完整性。覆盖率的典型类包括用例（基于需求的）、逻辑分支或节点（基于代码的）、数据状态和功能点。
    </li>
    <li>
        <b>测试用例生成器</b>自动生成测试数据。测试用例生成器使用测试目标的数据输入的正式规约或使用设计模型和源代码，来产生测试标定输入、错误输入、限制案例和边界案例的测试数据。
    </li>
    <li>
        <b>比较器工具</b>将测试结果与参考结果加以比较，并确定区别。对于特定数据格式，比较器的特征有所不同。例如，若比较位图图像，比较器可能是基于像素的，若是比较对象属性或数据，则比较器可能是基于对象的。
    </li>
    <li>
        <b>数据抽取器</b>用于从现有来源为测试用例提供输入，来源包括数据库、通信系统中的数据流、报告或设计模型和源代码。
    </li>
</ul><br />
<br /></td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright">Copyright &copy; 2008 版权所有 东软集团股份有限公司&nbsp; 联系邮箱:<a href="mailto:tcoe@neusoft.com">tcoe@neusoft.com</a></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
				contentPage.onload();
			</script>
</html>
